package com.liangzai.factory;

import com.liangzai.enums.PayEnumStrategy;
import com.liangzai.strategy.PayStrategy;

/**
 * @author leiliang
 * @version 1.0
 * @Description 策略工厂 获取不同的策略实现类
 * @date 2021/3/11 15:59
 */
public class StrategyFactory {

    public static PayStrategy getPayStrategy(String strategyType) {
        try {
            //1.获取具体的策略实现类地址   通过反射机制获取类名
            String className = PayEnumStrategy.valueOf(strategyType).getClassName();
            return (PayStrategy) Class.forName(className).newInstance();
        } catch (Exception e) {
            e.printStackTrace();
            return  null;
        }
    }
}
